A content addressable memory (CAM) device is a storage device that is particularly suitable for matching functions because it can be instructed to compare a specific pattern of comparand data with data stored in an associated memory array. A CAM, also referred to as an associative memory, can include a number of data storage locations, each of which can be accessed by a corresponding address. In a typical CAM matching function a comparand value (e.g., a header field or a portion thereof of a packet) is compared to the data values within the valid locations of the CAM. If the comparand value matches at least one data value of a valid location in the CAM, a match flag signal is generated and typically the address or index of the matching location is determined by a priority encoder. In the event there is more than one match, the address or index of one of the matching locations may be selected according to predetermined priority criteria. The match address or index can then be used to access other information (e.g., example routing or packet processing information in another memory).
Typically, a row of CAM cells in a CAM array is connected to a match line that indicates the match results for the row. The match results are typically detected by a logic gate such as an AND logic gate at a predetermined point in time when the match results are stable. The match result detected by the AND logic gate can then be latched by a latch circuit. The time required for the logic gate to detect the match result affects the overall operating speed of the CAM device before it can output a match flag signal and appropriate address or index of a matching location.
In the drawings, the same reference numbers identify identical or substantially similar elements or acts. To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the Figure number to which that element is first introduced (e.g., element 104 is first introduced and discussed with respect to FIG. 1).
Unless described otherwise below, the construction and operation of the various blocks and structures shown in the Figures are of conventional design. As a result, such blocks need not be described in further detail herein, because they will be understood by those skilled in the relevant art. Such further detail is omitted for brevity and so as not to obscure the detailed description of the invention. Any modifications necessary to the Figures can be readily made by one skilled in the relevant art based on the detailed description provided herein.